package com.newhopegroup.webcommons.utils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Created by zfb on 15-7-2.
 * 手机号码验证
 */
public class CheckMobileAndEmail {
    /**
     * 验证手机号码、电话号码是否有效 手机号前面加86的情况也考虑 新联通 　　 *（中国联通+中国网通）手机号码开头数字
     * 130、131、132、145、155、156、185、186 　　 * 新移动 　　 * （中国移动+中国铁通）手机号码开头数字
     * 134、135、136、137、138、139、147、150、151、152、157、158、159、182、183、187、188 　　 *
     * 新电信 　　 * （中国电信 <http://baike.baidu.com/view/3214.htm>+中国卫通）手机号码开头数字 133、153、189、180
     * 说明：“-”+数字位数不限；这段可有可无
     */
    public static String checkMobileNumber(String photo) {
        if (null != photo) {
            String reisphoto = photo.replace("，", ",").replace(";", ",")
                    .replace("；", ",").replace("　", ",").replace(" ", ",")
                    .replace("/", ",").replace("\\", ",");
            String[] photo1 = reisphoto.split(",");
            String[] photo2 = new String[photo1.length];
            boolean isfirst;
            if (null != photo1 && photo1.length > 0) {
                for (int i = 0; i < photo1.length; i++) {
                    isfirst = false;
                    if (photo1[i]
                            .matches("^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|2|3|5|6|7|8|9])\\d{8}$")) {
                        photo2[i] = photo1[i];
                        isfirst = true;
                    }
// 第二规则 “-”+数字位数不限 和手机号前面加86的情况也考虑
                    if (!isfirst) {
                        if (photo1[i]
                                .matches("^((\\+86)|(86))?(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|2|3|5|6|7|8|9])\\d{8}$")) {
                            photo2[i] = photo1[i];
                        }
                    }
                }
// 如果两个电话 只用一个
                if (photo2.length > 0) {
                    return photo2[0];
                }
            }
        }
        return null;
    }

    /**
     * 验证邮箱地址是否正确
     *
     * @param email
     * @return
     */
    public static String checkEmail(String email) {
        boolean flag = false;
        try {
            String check = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
            Pattern regex = Pattern.compile(check);
            Matcher matcher = regex.matcher(email);
            flag = matcher.matches();
        } catch (Exception e) {
            flag = false;
        }
        if (flag) {
            return email;
        }else {
            return null;
        }
    }
}

